﻿using System;
using System.Data.Entity.ModelConfiguration;
using SMS.Domain.Entities;

namespace SMS.Domain.Concrete.Mapping
{
    class RetoEntityTypeConfiguration : EntityTypeConfiguration<Reto>
    {
        public RetoEntityTypeConfiguration()
        {
            this.ToTable("Retos");
            //many-to-many retocategoria
            //En lugar de dejar que cree nombre de tabla que quiera, 
            //y nombres de campos que quiera, forzaremos mediante "fluent API". 
            //Técnica alternativa a "Data Annotations" (lo hemos usado en la definición de entities)
            this.HasMany(c => c.Categorias)
                .WithMany(r => r.Retos)
                .Map(mc =>
                {
                    mc.ToTable("RetosCategorias");
                    mc.MapLeftKey("CategoriaId");
                    mc.MapRightKey("RetoId");

                });
        }
    }
}
